home *** CD-ROM | disk | FTP | other *** search
-
- ---------------------------------------------------------
- | |
- | _/_/_/ _/_/_/ _/_/_/ |
- | _/ _/ _/ _/ _/ _/ |
- | _/ _/_/_/ _/ _/_/_/ _/_/_/ |
- | _/ _/ _/ _/ _/ |
- | _/_/_/ _/ _/_/_/ By B.Rive |
- | |
- | (Macintosh version) |
- ---------------------------------------------------------
-
-
- ----------------------------------------------------------------------
- CPC++, A C++ Amstrad CPC emulator
- Copyright (C) 1996 Brice Rive
- Version 1.2.1
-
- CPC++ contains ROM images which are copyright Amstrad and/or
- Locomotive software, and are distributed in good faith, on the
- understanding that the copyright owners have given permission for
- these images to be included with shareware CPC emulators.
- ----------------------------------------------------------------------
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- ----------------------------------------------------------------------
-
-
- _Contents:
- _Introduction
- _Registration
- _10 reasons why...
- _Where can I find programs
- _Launching CPC++
- _Unregistered / registered mode
- _Menu commands
- _Disk image files
- _Snapshots
- _External ROMs
- _Using a CPC
- _Keyboard mapping
- _History
- _Credits
-
- ----------------------------------------------------------------------
-
- _Introduction
-
- CPC++ is a shareware Amstrad CPC emulator.If you don't know what an
- Amstrad CPC is, go have a look at Kevin Thacker's Web site:
- (http://andercheran.aiind.upv.es/~amstrad)
-
- CPC++ is a very accurate emulation of the Amstrad CPC computers.
- It should let you do anything you could do with a real CPC.
- If you find any incompatibility, please send me a mail describing it
- at: bricerive@kagi.com or brice@worldnet.fr
-
- -Features:
- 15mn evaluation session time
- Compatible with most games and many demos (see compatibility list).
- Compatible with CP/M 2.2 & 3.0
- Speed equivalent to a real CPC on a PowerMac 7200
- Emulation of 464, 664, and 6128 models
- Full emulation of Z80 instruction set
- Exact emulation of Z80 instruction timings
- Exact emulation of Z80 R register
- Full emulation of CPC graphics at the scanline resolution
- Full CPC Sound emulation
- Full Floppy disc controller emulation (with timings)
- Joystick emulation on the keyboard
- Read DSK, EDSK, DIF disk image files
- Read snapshot file (.SNA)
- Digiblaster emulation
- Printer output to file
- Emulation speed indicator
- Overrideable on-board ROMs
- External ROMs support
- Configurable keyboard
- -Registered version:
- Unlimited session time
- No annoying startup timer
- Save EDSK disk image files
- Save Snapshot files.
-
- CPC++ is coded in C++ to allow for easy porting under various platforms.
- The original release runs under SunOS (UNIX), but other platforms will be
- added in the future (check out http://www.worldnet.fr/~brice/cpc for latest
- news).
- You can also send me (bricerive@kagi.com or brice@worldnet.fr) a mail to be
- added to the mail list and receive notification of new releases.
-
- ----------------------------------------------------------------------
-
- _Registration
-
- CPC++ is shareware. When you pay the shareware fee, you get a key that
- unlocks CPC++:
-
- No more annoying startup timer
- Unlimited session time
- Snapshot file saves
- Disk image file saves
-
-
- The key is dependant on which computer you are using and under which name
- you are using it. If these happen to change, you will need to ask me for a
- new (free of course) key.
-
-
- There is three ways to get a registration key:
- -Pay me directly (100FF)
- -Pay me through Kagi (25$)
- -Contribute (you figure it out)
-
-
-
- _To register directly with me, simply mail the following:
- -Registration code: displayed by CPC++
- -Registration fee: 100FF in French bills or French bank check.
- -name, e-mail or snail-mail address, phone, etc.
- To this address:
- Brice Rive, 34 Rue Vignon, 75009 Paris (France)
-
- In return I will e-mail (or mail) you the registration key.
-
-
-
- _To register through Kagi:
- -Send me your registration code either by mailing it directly
- to me (bricerive@kagi.com), or by inserting it in the Register
- program's form, in the comments field (the text icon just left
- of CPC++ vX.X.X).
-
- -Open the Register program that comes with CPC++ and enter the following:
- - Your full name
- - Your e-mail address
- - The number of licenses you want
- -Save, Copy or Print the data from the Register program and send it with
- your payment to Kagi. They will handle the payment processing.
- The exact way to do that depends on your payment method:
-
- If paying with Credit Card or First Virtual, you can email or fax the
- data to Kagi. Their email address is sales@kagi.com and their fax
- number is +1 510 652-6589. You can either Copy the data from Register
- and paste into the body of an email message or you can Save the data
- to a file and you can attach that file to an email message. There is
- no need to compress the data file, it's already pretty small. If you
- have a fax modem, just Print the data to the Kagi fax number.
-
- Payments sent via email are processed within 3 to 4 days. You will
- receive an email acknowledgement when it is processed. Payments sent
- via fax take up to 10 days and if you provide a correct internet
- email address you will receive an email acknowledgement.
-
- If you are paying with Cash or USD Check you should print the data
- using the Register application and send it to the address shown on
- the form, which is:
-
- Kagi
- 1442-A Walnut Street #392-B6
- Berkeley, California 94709-1405
- USA
-
- You can pay with a wide variety of cash from different countries but
- at present if you pay via check, it must be a check drawn in US
- Dollars. Kagi cannot accept checks in other currencies, the
- conversion rate for non-USD checks is around USD 15 per check and
- that is just not practical. If you have a purchasing department, you
- can enter all the data into the Register program and then select
- Invoice as your payment method. Print three copies of the form and
- send it to your accounts payable people. You might want to highlight
- the line that mentions that they must include a copy of the form
- with their payment.
- Kagi can not invoice your company, you need to act on my behalf and
- generate the invoice and handle all the paperwork on your end.
- Please do not fax or email payment forms that indicate Cash, Check
- or Invoice as the payment method. As far as we know, there is still
- no technology to transfer physical objects via fax or email and
- without the payment, the form cannot be processed.
- Payments send via postal mail take time to reach Kagi and then up to
- 10 days for processing. Again, if you include a correct email
- address, you will hear from Kagi when the form is processed.
-
- -When I receive you code and notification from Kagi that you registered,
- I will send you the registration key by e-mail (or by mail).
-
-
- _To contribute to CPC++:
-
- Alternatively, if you don't wish to pay the fee, but would like to be
- registered, you can offer to help with CPC++' developpement. Help can be
- writting documentation, porting, thourough testing, etc. Mail me your
- suggestions (bricerive@kagi.com or brice@worldnet.fr).
-
- ----------------------------------------------------------------------
-
- 10 reasons why you should register:
-
- 100FF for a virtual CPC, it's cheap !
- Using CPC++ with a limited session time is a pain !
- How can I finish Gryzor if I can't save snapshots !
- The time I would spend hacking out the key is worth more than 100FF !
- This really is the best CPC emulator, I need to say it somehow !
- The author probably needs some support in his efforts !
- I really would like improvements on CPC++ !
- Shareware CAN work, let me show you !
- I have 100FF, why not do something usefull with it !
- Most people do register, why not me?
-
- 10 reasons why you should not register:
-
- 100FF for a virtual CPC, it's a ripoff !
- I love being thrown out of Renegade when I'm about to kill the boss !
- I can finish Gryzor with only one life !
- I love spending hours on stealing from my fellow programmers !
- This emulator is crap, can't even run Roland in Time !
- I hate jerks who really believe I would give them a penny !
- Who cares for improvements, this emulator is crap !
- Shareware is just a way for me to rip off dummier people than me !
- I'd rather spend my 100FF on ice cream !
- Nobody ever registers, I wont be the first.
-
- ----------------------------------------------------------------------
-
- _Where can I find programs
-
- Many programs for CPC can be found on the net. Checkout Kevin's page
- below for more info.
- The main ftp site for games is: ftp.nvg.unit.no/pub/cpc
-
- I developped a system that allows you to transfer full CPC disks from
- your CPC to a Mac. It uses the printer port of the CPC to emulate a RS432
- serial link. It is called CPCTERM and you can find it on my Web Page
- (http://www.worldnet.fr/~brice).
-
- ----------------------------------------------------------------------
-
- _Launching CPC++:
-
- You can launch CPC++ by:
- Double-clicking on the application
- Double-clicking on a disk image file
- Double-clicking on a snapshot file
- Dropping a disk image file on the application
- Dropping a snapshot file on the application
-
- ----------------------------------------------------------------------
-
- _Unregistered / registered mode:
-
- In unregistered mode, CPC++ will constantly display a green/red bar
- at the top of its screen. This is an indicator of how much time there
- is left in the session. This indicator disapears in the registered mode.
-
- Unregistered mode also disables the save options in the Disks and
- Snapshots menu.
-
- ----------------------------------------------------------------------
-
- _Menu commands
-
- File:Reset:
- Resets the virtual CPC. Like turning power off and on.
-
- File:Preferences:License:
- License Code: the code you need to send me when you register.
- License Key: where you enter the registration key you
- will receive from me whem you register. Note that letters must be
- entered in capitals.
- File:Preferences:Speed:
- Frame Rate: tells CPC++ how many frames it should actualy refresh
- on the macintosh screen. If it is set to 1, you get full CPC
- screen refresh. If higher than 1, CPC++ will skip some frame
- thus increading its overall speed but degrading the animations.
- Speed Limit: tells CPC++ how fast it can go. 4 is the speed of a real
- CPC. You can use than to slow down CPC++ in though game phases.
- Wait for sound: tells CPC++ to wait for each block of sound to be
- rendered before doing the next. If marked, the sound will be best
- but the emulation will not go higher than a real CPC speed. If
- unmarked, the emulation can go as fast at the speed limit allows,
- but the sound might be chopped.
- Responsivness: Controls how much time CPC++ will spend processing
- Macintosh events. If you set it to selfish or cpu-hog, the
- emulator will run faster, but you will have to be patient if
- you want it to answer to events (like menu selection or mouse click)
- File:Preferences:Startup:
- Floppy in drive A: lets you specify a disk image path, for the disk
- you want in drive A when CPC++ starts up. If empty, CPC++ will
- have no disk in drive A at startup
- Floppy in drive B: same as above for drive B
- Startup snapshot: Lets you specify a snapshot file path that you
- want CPC++ to load at startup. If empty, CPC++ will start
- normally.
- Startup command: lets you specify a command that will be ghost-typed
- on CPC++'s keyboard just after starting up. This is usefull if you
- have indicated a disk in one of the drives and you want the virtual
- CPC to automatically start a program on it when it launches.
- CPM boot: The actual CPC has a jumper on it's main board that let's
- it automatically boot CP/M on startup (instead of the Basic). This
- option only works when you have a CP/M disk in drive A.
- The mechanism used for this feature is to change the AMSDOS ROM
- address, thus making it the front ROM (see external ROMs).
- Constructor: Another jumper that is present on a real CPC is a three
- bit Constructor ID. These are only used at startup to display the
- correct constructor name.
- File:Preferences:Configuration:
- Model: lets you select which model (464,664,6128) will be emulated by
- CPC++. Note that changing this will require a restart of the virtual
- CPC (it is not the same anymore).
- Color/Monochrom: lets you select wether CPC++ is emulating a color or
- monochrom monitor.
- Digiblaster: turns on digiblaster emulation. The digiblaster is a simple
- electronic extension that let's the CPC play 8 bit sampled sounds
- through it's printer interface. When turned on, the Digiblaster
- emulation will disable normal printer emulation. You need some
- digiblaster software (PROTRACKER,DIGITRACKER) to see it work.
- File:Preferences:Emulation:
- VSync INT forced: tells CPC++ to force an interrupt at VSync. This is
- not the correct emulation, but it helps getting some programs to
- work. Try to turn it on if you see a program that seem to hang.
- VSync HReses Pos: Controls the position of interrupts relative to
- the VSync signal. It should normaly be set to 3 but some programs
- will work better if it is set to 4. Try it if a program that uses
- screen splitting techniques seems to be off by one line.
- Real Time: tells the FDC (Floppy Disc Controller) emulation to simulate
- the time it takes to do disk accesses. This option slow down disk
- accesses, but it is needed for programs such as Discology which
- rely on timing to analyze disk contents.
- DD Error Protection: Some disk copy protections use a physically
- damaged sector (Archon,...). Reading such a sector several times
- returns random data, which is used by the protection to identify
- original disks versus copies. To emulate a damaged sector, turn
- this option on.
- DSK Seek Fix: Some DSK files found on the net (BTL, ...) do not exactely
- respect the DSK file format definition. This option will let CPC++
- read them anyway.
- CRTC Model: The different models of CPC did not have all exactly the
- same CRTC (Cathod Ray Tube Controller). Although the three variants
- I know of behave pretty much the same way, they have some tiny
- differences which will make certain programs (mostly demos) work on
- one and not the other.
- The differences are:
- A = Registers can be read
- B = Register 3 controls VSync pulse width
- C = HSync position can be higher than 48
- The models are (arbitrarely numbered):
- A B C
- Model 0 Yes Yes Yes
- Model 1 No No Yes
- Model 2 No No No
- Default: Lets you reset all these obscure parameters to their default value.
- File:Preferences:Keyboard:
- This dialog lets you customize the mapping between the CPC keyboard
- and your Macintosh keyboard.
- To map two keys together, hold down the Mac key and, without releasing it,
- click on the corresponding CPC key.
- If you click on a CPC key without holding down a Mac key, the dialog
- will tell you the current mapping.
- The default button lets you reset the mapping to it's default.
-
- File:Quit:
- Terminates your CPC session.
-
- Control:Pause
- Pauses/unpauses the virtual CPC.
-
- Control:Speed indicator:
- Show/hide the speed indicator. The indicator bar tells you how fast the
- emulator is running relative to a real CPC. The first mark indicates the
- speed of a CPC, the second is twice the speed of a CPC ...
-
- Control:Full CPC Screen / Quarter size:
- Selects the size of the CPC display. You can only use full screen if your
- monitor is at least 832x580. Otherwise, you'll have to stick with the
- quarter size screen. You can also toggle between the two by clicking
- on the screen window.
-
- Control:Sound:
- Activate/Deactivate sound rendering
-
- Control:Volume:
- Lets you select the overall volume of the sound emulation. It does not
- control the volume of the disk insert sound or other gizmos.
-
- Drive A:Select Disk Image:
- Loads a disk image file into the drive (see disk image files below). This
- is equivalent to inserting a disk in the drive.
- The get file dialog only displays disk images if they have the correct
- type. To load untyped disk images, select the All Files option.
- Drive A:Save Disk Image:
- Lets you update a disk image dile with the contents of the emulated disk.
- Don't forget to do that before quitting if you have done some work on
- the disk.
- Drive A:Flip Disk:
- If the disk image file in the drive is double-sided, or if it's name ends
- either in .A or .B, this command lets you flip it.
- Drive A:Eject Disk:
- Ejects the current disk. Disk accesses will fail after that until you
- insert a new disk.
-
- Snapshot:Save Snapshot:
- Saves the current state of the virtual CPC into a snapshot file.
- Snapshot:Load Snapshot:
- Loads the virtual CPC with the contents of a snapshot file
- (see snapshots below).
-
- ----------------------------------------------------------------------
-
- _Disk image files
-
- They are disk images either in DIF format (the one generated by CPCTERM), in
- DSK format (the standard), or in EDSK (extended DSK) format.
-
- When you load a disk image file, CPC++ create an image of it in memory. All
- subsequent work on the disk is done in memory. To update the actual disk
- image file, you will need to save it.
-
- To enable all the features of disk image files, you need to set their
- type/creator info to:
- DIF = cDIF/CPC+
- DSK = cDSK/CPC+
- EDSK= cDSK/CPC+
-
- Setting the above info for a disk image file enables:
- -Launching CPC++ by double-clicking on the file (loads the file into drive A)
- -Launching CPC++ by dropping the file on it (loads the file into drive A)
- -Loading the file into drive A with double-click (if CPC++ is already running)
- -Loading the file into drive A by dropping it on CPC++ (if it is running)
- -Seeing the file in the default Select Disk Image dialog
- -Seeing the file with the correct icon in the finder
-
-
-
- ----------------------------------------------------------------------
-
- _Snapshots
-
- CPC++ can read and write standard (.SNA format by Marco Vieth) snapshot files.
- This format does not contain enough information to save and restore from
- some advanced programs, but is sufficient in most cases.
-
-
- ----------------------------------------------------------------------
-
- _External ROMs
-
- CPC++ includes the default on-board ROMs, but you can override them
- and also provide external ROMs by putting ROM files in CPC++'s folder.
-
- ROM files contain 32768 bytes in their data fork. They are recognized by
- CPC++ based on their file name.
-
- Overriding the on-board ROMs:
- The on-board ROMs have the following names:
- CPC 464 kernel ROMLO464
- CPC 464 basic ROMHI464
- CPC 664 kernel ROMLO664
- CPC 664 basic ROMHI664
- CPC 6128 kernel ROMLO6128
- CPC 6128 basic ROMHI6128
-
- If you want, for example, to use french (AZERTY) ROM in the 6128
- emulation instead of the provided english (QWERTY) ROM:
- name the file that contains the kernel ROMLO6128, and the file that
- contains the basic ROMHI6128
- put those files in CPC++'s folder
- restart CPC++ or reset the virtual CPC
-
- Providing external ROMs:
- External ROMs can be recognized by CPC++ using the following names:
-
- ROMXTxxx
-
- Where xxx is the ROM address between 000 and 007
- For example, you can replace the provided Amsdos ROM by putting a file
- named ROMXT007 in CPC++'s folder.
-
- ----------------------------------------------------------------------
-
- _Using a CPC
-
- Using the virtual CPC is the same as using a real CPC.
- Here is a quick reminder of basic commands:
-
- CAT To see the contents of a disk
- RUN"filename.ext" To execute a program
- Executable program extension usualy are .BAS or .BIN
- A shortcut to type in the command is:
- type the filename
- type CONTROL+LEFT ARROW
- type CONTROL+ENTER (on numeric keypad)
- |CPM To launch a CP/M disk
-
- ----------------------------------------------------------------------
-
- _Keyboard mapping
-
- The CPC keyboard is mapped to the Macintosh keyboard.
- The actual mapping uses Macintosh virtual key codes.
-
- The default provided keyboard map tries to achieve geographical mapping
- between the Mac and the CPC keyboard layouts (You can check the CPC layout
- in File:Preferences:Keyboard).
-
- Some not so obvious mappings in the default map:
- CPC MAC
- COPY Option/Alt
- CONTROL Control
- JoyUp Home
- JoyDown End
- JoyLeft Del
- JoyRight PageDown
- JoyFire Command
-
- ----------------------------------------------------------------------
-
- _History
-
-
- CPC++ v1.2.1:
- Features:
- -Configurable keyboard
- -Graphic speed indicator
- -GetFloppy all files option
- -Sna all files option
- -Reset on model switch
- -Responsivness speed option
- -Movable half size window
- -Handling registration through Kagi.com
- -Default ROM build-in, use other if present
- -Support for external ROMs
- -Add FAT code to fail smoothly on non PPC Macs
- -Set printer output file TYPE/CREA
- -Better icon
- -uSec timing
- -Default button for emulation prefs
- Fixes:
- -Color 13 grey->white
- -Arrow down key
- -Smoother sound
- -Refresh bug when switching from large to small screen
- -Disable full size screen on smaller macs
- -check mark for sound on/off menu item
- -Check mark on pause
- -Dim saves in non-registered
- -Select license code in license dialog
-
- CPC++ v1.2:
- N/A
-
- CPC++ v1.1:
- First Mac release
-
- ----------------------------------------------------------------------
-
- _Credits
-
- Many thanks to the following people:
-
- -Pierre Guerrier for his reverse engineering of the CRTC/GA and tons of help
- and ideas on pretty much everything (and the Snapshot file icon).
-
- -Gilles Blanchard for sending me more disks to test with.
-
- -Fred Herlem for transfering all my game disks to nvg.
-
- -Richard Bannister for his help with the Mac version interface.
-
- -Kevin Thacker for maintaining the best CPC site on the net and his support
- (http://arachnid.cm.cf.ac.uk/User/K.E.W.Thacker/Amstrad)
-
- -Noel Llopis for maintaining the huge ftp site at nvg.unit.no
-
- -Emmanuel Roussin for helping the CPC scene and his BSS.
-
- -Everybody who registered and motivated further efforts on CPC++.
-
- -Everybody who did send suggestions.
-
- ----------------------------------------------------------------------
-
- _The End.
-
- ----------------------------------------------------------------------
-